package com.beiben.statistics.mapper;

import com.beiben.statistics.vo.NameValueVo;
import com.beiben.statistics.vo.RecordSearchParamVo;
import com.beiben.statistics.vo.WorkItemVo;
import com.beiben.work.process.domain.FileProcessUser;

import java.util.List;
import java.util.Map;

/**
 * Created by admin on 2020/10/9.
 */
public interface WorkMapper {

    //查询统计所的总工作工时
    public List<WorkItemVo> selectWorkDeptSuo(RecordSearchParamVo recordSearchParamVo);

    //查询统计科室的总工作工时
    public List<WorkItemVo> selectWorkDeptShi(RecordSearchParamVo recordSearchParamVo);

    //查询人员总工作工时
    public List<WorkItemVo> selectWorkTotalPeople(RecordSearchParamVo recordSearchParamVo);

    //查询所所有人员总工时
    public List<NameValueVo> selectWorkHoursPeopleSuo(RecordSearchParamVo recordSearchParamVo);

    //查询科室所有人员总工时
    public List<NameValueVo> selectWorkHoursPeopleShi(RecordSearchParamVo recordSearchParamVo);

    /**
     * 查询任务分配列表
     *
     * @param recordSearchParamVo
     * @return 任务分配集合
     */
    public List<FileProcessUser> selectFileProcessUserList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 查询人员工时
     *
     * @param recordSearchParamVo
     * @return 任务分配集合
     */
    public Integer selectUserWorkHours(RecordSearchParamVo recordSearchParamVo);

    //查询统计所的质量问题统计
    public List<NameValueVo> selectWorkQualityCount(RecordSearchParamVo recordSearchParamVo);

    //查询统计科室的质量问题统计
    public List<NameValueVo> selectWorkQualityCountShi(RecordSearchParamVo recordSearchParamVo);

    //查询统计组的质量问题统计
    public List<NameValueVo> selectWorkQualityCountZu(RecordSearchParamVo recordSearchParamVo);

    //查询统计组的质量问题统计(排名前十)
    public List<NameValueVo> selectWorkQualityCountZuRank(RecordSearchParamVo recordSearchParamVo);

    //按所统计总工作量（个数）
    public List<NameValueVo> selectWorkCountSuo(RecordSearchParamVo recordSearchParamVo);

    //按科室统计总工作量（个数）
    public List<NameValueVo> selectWorkCountShi(RecordSearchParamVo recordSearchParamVo);

    //按人员统计总工作量（个数）
    public List<NameValueVo> selectWorkCountPeople(RecordSearchParamVo recordSearchParamVo);

    //查询质量问题统计（单数）
    public List<NameValueVo> selectFileProcessQualityList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 查询我的待办工作-日常工作
     */
    public List<FileProcessUser> selectMyWaitWorkList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 我的待办工作-项目工作
     *
     * @param recordSearchParamVo
     * @return
     */
    public List<FileProcessUser> selectMyWaitWorkProjectList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 我的代办工作统计
     *
     * @return
     */
    public Map<String, Object> selectCountWork(RecordSearchParamVo recordSearchParamVo);

}
